﻿using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;

using AimGameLibrary.GameObject;

using AimGameLibrary.ScreenManager;

namespace AimGameLibrary
{
    /// <summary>
    /// Interface used to display notification messages when interesting events occur,
    /// for instance when gamers join or leave the network session. This interface
    /// is registered as a service, so any piece of code wanting to display a message
    /// can look it up from Game.Services, without needing to worry about how the
    /// message display is implemented. In this sample, the MessageDisplayComponent
    /// class implement this IMessageDisplay service.
    /// </summary>
    interface IMessageDisplay : IDrawable, IUpdateable
    {
        void ShowMessage(string message, params object[] parameters);
    }
    
    public interface IDraw
    {
        void Draw();
    }

    public interface IUpdate
    {
        void Update();
    }

    /// <summary>
    /// For XNA Game
    /// </summary>
    public interface IUpdateMainTime
    {
        void UpdateGameTime(GameTime gametime);
        void UpdateTime(TimeSpan timespan);
    }
    /// <summary>
    /// For Editor
    /// </summary>

    public interface IHandleInputUpdate
    {
        void HandleInputUpdateTime(InputState inputstate, TimeSpan timespan);
        void HandleInputUpdateGameTime(InputState inputstate, Microsoft.Xna.Framework.GameTime gametime);
    }
}
